import pytest

from helpers.cluster import ClickHouseCluster

cluster = ClickHouseCluster(__file__)

node1 = cluster.add_instance(
    "node1", main_configs=["configs/remote_servers.xml"], with_zookeeper=True
)
node2 = cluster.add_instance(
    "node2", main_configs=["configs/remote_servers.xml"], with_zookeeper=True
)


@pytest.fixture(scope="module")
def started_cluster():
    try:
        cluster.start()

        for node in (node1, node2):
            node.query(
                """
            CREATE TABLE default.t1_local
            (
                event_date Date DEFAULT toDate(event_time),
                event_time DateTime,
                log_type UInt32,
                account_id String
            )
            ENGINE = MergeTree PARTITION BY toYYYYMM(event_date) ORDER BY (event_time, account_id);
            """
            )

            node.query(
                """
            CREATE TABLE default.t1 AS default.t1_local
            ENGINE = Distributed('two_shards', 'default', 't1_local', rand());
            """
            )

        yield cluster

    finally:
        cluster.shutdown()


def test_read(started_cluster):
    assert (
        node1.query(
            """SELECT event_date, event_time, log_type
                        FROM default.t1
                        WHERE (log_type = 30305) AND (account_id = '111111')
                        LIMIT 1"""
        ).strip()
        == ""
    )
